home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / C++ / Applications / Nuntius 1.2 / src / Nuntius / UGroupDoc.h < prev    next >
Encoding:
Text File  |  1994-03-06  |  2.4 KB  |  78 lines  |  [TEXT/MPS ]

  1. // Copyright © 1992 Peter Speck, speck@dat.ruc.dk. All rights reserved.
  2. // UGroupDoc.h
  3.  
  4. #define __UGROUPDOC__
  5.  
  6. class PDiscList;
  7. class TDiscListView;
  8. class TArticleStatus;
  9. class THeaderList;
  10. struct HandleOffsetLength;
  11. class TOpenGroupCommand;
  12.  
  13. class TGroupDoc : public TFileBasedDocument
  14. {
  15.     public:
  16.         TArticleStatus *GetArticleStatus();
  17.         TArticleStatus *GetOldArticleStatus();
  18.  
  19.         PDiscList *GetDiscList();
  20.         TDiscListView *GetDiscListView();
  21.  
  22.         void GetGroupDotName(CStr255 &name);        
  23.         long GetFirstArticleID();
  24.         long GetLastArticleID();
  25.         Boolean GetFrom(long id, HandleOffsetLength &hol);
  26.         Boolean GetSubject(long id, HandleOffsetLength &hol);
  27.                 
  28.         void IncLockAgainstClose();
  29.         void DecLockAgainstClose();
  30.         
  31.         pascal void DoRead(TFile *aFile, Boolean forPrinting);
  32.         pascal void DoWrite(TFile *aFile, Boolean forPrinting);
  33.         pascal void DoNeedDiskSpace(TFile *itsFile, long &dataForkBytes, long &rsrcForkBytes);
  34.         pascal TFile *DoMakeFile(CommandNumber itsCommandNumber);
  35.         void CheckDBFile(ResNumber rsrcId, short rsrcIndex, Boolean reverting);
  36.         pascal void SaveDocument(CommandNumber itsCommandNumber);
  37.         pascal void ReadDocument(Boolean forPrinting);
  38.         pascal void FileHasBeenSaved(const CStr255& newName);
  39.         pascal void Changed(ChangeID theChange, TObject* changedBy);
  40.         void DoPostUpdate(Boolean updateOnly);
  41.         
  42.         pascal void DoMakeViews(Boolean forPrinting);
  43.  
  44.         pascal void DoMenuCommand(CommandNumber aCommandNumber);
  45.         pascal void DoSetupMenus();
  46.         
  47.         TGroupDoc();
  48.         pascal void Initialize();
  49.         void IGroupDoc(TFile *statFile, TFile *dbFile, const CStr255 &dotName);
  50.         pascal void DoInitialState();
  51.         pascal void Close();
  52.         pascal void Free();
  53.     private:
  54.         friend class TOpenGroupCommand;
  55.  
  56.         TFileHandler *fDBFileHandler;
  57.         PDiscList *fDiscList;
  58.         TWindow *fDiscListWindow;
  59.         TDiscListView *fDiscListView;
  60.  
  61.         TArticleStatus *fOldArticleStatus, *fArticleStatus;
  62.         THeaderList *fSubjectHdr, *fFromHdr, *fMsgIDHdr, *fRefsHdr;
  63.         long fFirstArticleID, fLastArticleID;
  64.         CStr255 fGroupDotName;
  65.         long fLockLevelAgainstClose;
  66.         Boolean fArticleStatusIsDirty, fDatabaseIsDirty;
  67.         Boolean fSaveArticleStatus, fSaveDatabase;
  68.  
  69.         void DoReadDatabase(TStream *aStream);
  70.         void DoWriteDatabase(TStream *aStream);
  71.         void DatabaseDoNeedDiskSpace(TFile *itsFile, long &dataForkBytes,  long &rsrcForkBytes);
  72.         void DoReadArticleStatus(TStream *aStream);
  73.         void DoWriteArticleStatus(TStream *aStream);
  74.         void ArticleStatusDoNeedDiskSpace(TFile *itsFile, long &dataForkBytes,  long &rsrcForkBytes);
  75.  
  76. };
  77.  
  78.